package demo2;

abstract class Shape{
    public Shape(){

    }//用来让子类调用， 帮助这个抽象类 初始化自己的成员
    public abstract void draw();
    //final 和abstract 是不能同时存在的
    /*public void test(){}*/

}
class Rect extends Shape{
    @Override
    public void draw() {
        System.out.println("矩形");
    }
}
class Flower extends Shape{
    @Override
    public void draw() {
        System.out.println("花");
    }
}
public class Test {
    public static void drawMap(Shape shape){

    }
    public static void main(String[] args) {
        Shape shape = new Rect();//向上转型
        drawMap(new Rect());
        drawMap(new Flower());
        //new Rect()->匿名对象 没有名字的对象
        //匿名对象的缺点 不能重复使用 只能用一次 每次使用都得重新实例化
    }
}
